/*
 * ITeachersCodesListIterator.h
 *
 *  Created on: 9 May 2010
 *      Author: Savramis Sartios
 */

#ifndef ITEACHERSCODESLISTITERATOR_H_
#define ITEACHERSCODESLISTITERATOR_H_
#include <string>
using namespace std;

class ICourseTeachersIterator{
public:
	/**
	 * Ξεκινά από το πρώτο στοιχείο της δομής
	 */
	virtual void first()=0;

	/**
	 * Πηγαίνει στο επόμενο στοιχείο της δομής
	 */
	virtual void next()=0;

	/**
	 * Ελέγχει έαν η δομή έφτασε στο τέλος της
	 * \return false εάν βρισκόμαστε μέσα στα όρια της δομής
	 */
	virtual bool isDone()=0;

	/**
	 * Επιστρέφει έναν κωδικό καθηγητή για το μάθημα στο οποίο βρίσκεται ο current
	 * \return string * ο κωδικός του καθηγητή
	 */
	virtual string * getTeacher()=0;

	/**
	 * Επιστρέφει τον κωδικό του μαθήματος του στοιχείου που προσπελαύνεται την κάθε στιγμή
	 * \return string * ο κωδικός του μαθήματος
	 */
	virtual string * getCourse()=0;

	virtual bool teacherIsLast()=0;
};

#endif /* ITEACHERSCODESLISTITERATOR_H_ */
